//package xyz.xtgl.security.springboot.authentication.agent;
//
//import org.springframework.security.authentication.AbstractAuthenticationToken;
//import org.springframework.security.core.GrantedAuthority;
//import org.springframework.security.core.SpringSecurityCoreVersion;
//
//import java.util.Collection;
//
///**
// * @author liubo
// * @created 2019-12-14 11:59
// */
//public class AgentAuthenticationToken extends AbstractAuthenticationToken {
//
//    private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//    private final Object principal;
//    private Object credentials;
//
//    public AgentAuthenticationToken(String usernameOrPhone, String password) {
//        super(null);
//        this.principal = usernameOrPhone;
//        this.credentials = password;
//        setAuthenticated(false);
//    }
//
//
//    public AgentAuthenticationToken(Object principal, Object credentials,
//                                    Collection<? extends GrantedAuthority> authorities) {
//        super(authorities);
//        this.principal = principal;
//        this.credentials = credentials;
//        super.setAuthenticated(true);
//    }
//
//    @Override
//    public Object getCredentials() {
//        return this.credentials;
//    }
//
//    @Override
//    public Object getPrincipal() {
//        return this.principal;
//    }
//
//    @Override
//    public void setAuthenticated(boolean isAuthenticated) {
//        if (isAuthenticated) {
//            throw new IllegalArgumentException("authorities 为空,不能通过构造器加载authorities");
//        }
//        super.setAuthenticated(false);
//    }
//
//    @Override
//    public void eraseCredentials() {
//        super.eraseCredentials();
//    }
//}
